home *** CD-ROM | disk | FTP | other *** search
/ Total Network Tools 2002 / NextStepPublishing-TotalNetworkTools2002-Win95.iso / Archive / Browser Addons / Cogitum Co-Citer.exe / CogitumH.___ / HTML / COGTRACKER.HTA < prev    next >
Encoding:
Text File  |  2000-12-27  |  16.7 KB  |  706 lines

  1. <HTML xmlns:CogTracker="http://www.rword.ru/tracker/">
  2. <HEAD>
  3. <TITLE>
  4. Cogitum Co-Citer
  5. </TITLE>
  6.  
  7.  
  8.  
  9. <HTA:APPLICATION
  10.      ID="oHTA"
  11.      APPLICATIONNAME="{E0F6716F-4E84-11d4-B7AB-00C0F04903DC}"
  12.      CAPTION="yes"
  13.      ICON="CogTracker16x16.ico"
  14.      MAXIMIZEBUTTON="yes"
  15.      MINIMIZEBUTTON="yes"
  16.      SHOWINTASKBAR="yes"
  17.      SINGLEINSTANCE="yes"
  18.      SYSMENU="yes"
  19.      VERSION="1.0.4"
  20.      WINDOWSTATE="minimize"
  21. >
  22. </HTA:APPLICATION>
  23.  
  24.  
  25.  
  26.  
  27.  
  28. <LINK rel="stylesheet" type="text/css" href="CogTrackerNew.css"/>
  29. <LINK rel="stylesheet" type="text/css" href="CogTrackerTree.css"/>
  30.  
  31.  
  32. <SCRIPT LANGUAGE="JScript"> 
  33. // 1 means sense support on
  34. // 2 means tracker support on
  35. // 4 means bannerpile database support
  36. @set @support            = 8;
  37. </SCRIPT>
  38.  
  39. <SCRIPT LANGUAGE="JScript"> 
  40. // 1 means sense support on
  41. // 2 means tracker support on
  42. @if ( @support != @support)
  43. @set @support            = 1;
  44. @end
  45. @set @SenseSupport    = ( (@support) == 1);
  46. @set @TrackerSupport    = ( (@support) == 2);
  47. @set @BannerPileSupport    = ( (@support) == 4);
  48. @set @CitatesSupport    = ( (@support) == 8);
  49.  
  50. </SCRIPT>
  51.  
  52.  
  53. <SCRIPT LANGUAGE="JScript" SRC="CogTracker.js">
  54. </SCRIPT>
  55.  
  56.  
  57. <SCRIPT LANGUAGE="JScript" SRC="ctUtils.js">
  58. </SCRIPT>
  59. <SCRIPT LANGUAGE="JScript" SRC="String.js">
  60. </SCRIPT>
  61. <SCRIPT LANGUAGE="JScript" SRC="XMLBaseIO.js">
  62. </SCRIPT>
  63.  
  64.  
  65. <STYLE>
  66. @media print {
  67.     FRAME.NotPrintable {
  68.         display: none;
  69.         page-break-before: "";
  70.         page-break-after: "";
  71.     };
  72. }
  73. </STYLE>
  74. <!-- /HEAD -->
  75.  
  76.  
  77. <!-- Auto-resize development delayed -->
  78. <!--
  79. <SCRIPT LANGUAGE="JScript">
  80. var nResizeTimerID = -1;
  81. function OnResize() {
  82.     if (nResizeTimerID != -1) {
  83.         window.clearTimeout(nResizeTimerID);
  84.         nResizeTimerID = -1;
  85.         OnFolderChanged();
  86.     };
  87. };
  88. </SCRIPT>
  89. <SCRIPT LANGUAGE="JScript" FOR="window" EVENT="onresize">
  90. nResizeTimerID = window.setTimeout("OnResize()", 500);
  91. </SCRIPT>
  92. -->
  93. <SCRIPT LANGUAGE="JScript">
  94. L_FoldersTreeButton_Hide = "Hide Folders Tree Pane";
  95. L_FoldersTreeButton_Show = "Show Folders Tree Pane";
  96. L_NO_HELPER         = "There are no Cogitum Helper object found.\n\nYou may need to reinstall the application.";
  97.  
  98. var bWontWork = false;
  99.  
  100. function fnGetMainToolbar() {
  101.         return document.frames.ctToolBars.document.all.ctMainToolbar;
  102. };
  103. function fnGetLeftToolbar() {
  104.         return document.frames.ctToolBars.document.all.ctLeftToolbar;
  105. };
  106. function fnGetRightToolbar() {
  107.         return document.frames.ctToolBars.document.all.ctRightToolbar;
  108. };
  109. function fnGetTreeHolder() {
  110.     return document.frames.ctLeftFrame.document.all.ctlTree;
  111. };
  112. function fnGetCitatesHolder() {
  113.     return document.frames.ctRightFrame.document.all.ctlCitates;
  114. };
  115.  
  116. function fnGetHelperObject() {
  117.     return document.frames.ctToolBars.document.idHelper;
  118. };
  119.  
  120. var bLeftFrameLoaded = false;
  121.  
  122. function fnSetupLeftFrame() {
  123.     if (bWontWork)
  124.         return;
  125.         
  126.     if (bLeftFrameLoaded) { // User selected Refresh from LeftFrame's context menu
  127.         fnLoadFile(gsCurrentPath);
  128.     };
  129.  
  130.         bLeftFrameLoaded = true;
  131. };
  132.  
  133. var bRightFrameLoaded = false;
  134.  
  135. function fnSetupRightFrame() {
  136.     if (bWontWork)
  137.         return;
  138.         
  139.     if (bRightFrameLoaded) { // User selected Refresh from RightFrame's context menu
  140.         OnFolderChanged();
  141.     };
  142.  
  143.         bRightFrameLoaded = true;
  144. };
  145.  
  146. var TitleBarSetupTimer = -1;
  147. // Called from fnDoStartup and from TitleBar's onload.
  148. // Reason: user can select Refresh from TitleBar's popup menu.
  149. function fnSetupTitleBar() {
  150.     if (bWontWork)
  151.         return;
  152.         
  153.  
  154.     if (TitleBarSetupTimer != -1) {
  155.         window.clearTimeout(TitleBarSetupTimer);
  156.         TitleBarSetupTimer = -1;
  157.     };
  158.  
  159.     try {
  160.         document.frames.ctTitleBar.document.all.idVersionString.innerHTML =
  161.             "Version  " + top.oHTA.version + " ";
  162.         
  163.     }
  164.     catch(err) { // Error occured. retry later.
  165.         TitleBarSetupTimer = window.setTimer(fnSetupTitleBar, 50);
  166.     };
  167. };
  168.  
  169. var ToolBarSetupTimer = -1;                              
  170.  
  171. function fnGetBrowserVersion() {
  172.     var sAgent = window.navigator.userAgent;
  173.     var nPos = sAgent.indexOf("(");
  174.     if (nPos > -1) {
  175.         sAgent = sAgent.slice(nPos+1);
  176.     };
  177.     nPos = sAgent.search(/\d/g);
  178.     if (nPos > -1) {
  179.         var nVersion = parseFloat(sAgent.slice(nPos));
  180.         if (!isNaN(nVersion)) {
  181.             return nVersion;
  182.         };
  183.     };
  184.  
  185.     return 0.0;
  186.                 
  187. };
  188.  
  189. // Called from fnDoStartup and from ToolBar's onload.
  190. // Reason: user can select Refresh from ToolBar's popup menu.
  191. function fnSetupToolBar() {
  192.     if (bWontWork)
  193.         return;
  194.         
  195.     if (ToolBarSetupTimer != -1) {
  196.         window.clearTimeout(ToolBarSetupTimer);
  197.         ToolBarSetupTimer = -1;
  198.     };
  199.  
  200.     try {
  201.             // Setup Sorting modes
  202.             // Note: we store (SortBy + 1) and (SortDirection + 1)
  203.             //    in the registry. This helps detect absence of
  204.             //    the setting in it.
  205.  
  206.         var nSortBy = -1;
  207.         if (gnSortBy != -1) {
  208.             nSortBy = gnSortBy + 1;
  209.         }
  210.         else {
  211.             nSortBy = fnGetSetting(ccsSortBy, 0, true);
  212.         }
  213.  
  214.         if (nSortBy == null || isNaN(nSortBy))
  215.             nSortBy = 1;
  216.         else
  217.             nSortBy --;
  218.  
  219.  
  220.         if (nSortBy < 0 || nSortBy >= arAttributeNames.length)
  221.             nSortBy = 1;
  222.         gnSortBy = nSortBy;
  223.  
  224.  
  225.         var nSortDirection = -1;
  226.         if (gnSortDirection != -1) {
  227.             nSortDirection = gnSortDirection + 1;
  228.         }
  229.         else {
  230.             nSortDirection = fnGetSetting(ccsSortDirection, 0, true);
  231.         };
  232.  
  233.         if (nSortDirection == null || isNaN(nSortDirection))
  234.             nSortDirection = 1;
  235.         else
  236.             nSortDirection --;
  237.  
  238.         if (nSortDirection < 0 || nSortDirection >= arDirectionSigns.length)
  239.             nSortDirection = 1;
  240.         gnSortDirection = nSortDirection;
  241.  
  242.  
  243.         var oRightButtons = fnGetRightToolbar().childNodes;//RightToolbar.childNodes;
  244.             for ( i = 0; i < oRightButtons.length; i++) {
  245.             if ( (    oRightButtons[i].tagName == "IMG" ) &&
  246.                  (    oRightButtons[i].className == "ToolbarButton" )) {
  247.  
  248.                 oRightButtons[i].ct_disabled = 0;
  249.                 //oRightButtons[i].ct_checkbutton = 1;
  250.                 oRightButtons[i].ct_state = 0;
  251.                 //oRightButtons[i].tabIndex=1;
  252.             };
  253.         };
  254.  
  255.         var oLeftButtons = fnGetLeftToolbar().childNodes;//LeftToolbar.childNodes;
  256.         for ( i = 0; i < oLeftButtons.length; i++) {
  257.             if ( (    oLeftButtons[i].tagName == "IMG" ) &&
  258.                  (    oLeftButtons[i].className == "ToolbarButton" )) {
  259.  
  260.  
  261.                 oLeftButtons[i].ct_disabled = 0;
  262.                 //oLeftButtons[i].ct_checkbutton = 0;
  263.                 oLeftButtons[i].ct_state = 0;
  264.  
  265.             }
  266.         };
  267.  
  268.         if (fnGetBrowserVersion() >= 5.5) {
  269.             var oButtons = fnGetMainToolbar().childNodes;
  270.                    for ( i = 0; i < oButtons.length; i++) {
  271.                 if ( (    oButtons[i].tagName == "IMG" ) &&
  272.                      (    oButtons[i].className == "ToolbarButton" )) {
  273.                     
  274.                     oButtons[i].tabIndex = -1;
  275.                 };
  276.             };
  277.             oButtons = fnGetLeftToolbar().childNodes;
  278.                    for ( i = 0; i < oButtons.length; i++) {
  279.                 if ( (    oButtons[i].tagName == "IMG" ) &&
  280.                      (    oButtons[i].className == "ToolbarButton" )) {
  281.  
  282.                             oButtons[i].tabIndex = -1;
  283.                 };
  284.             };
  285.             oButtons = fnGetRightToolbar().childNodes;
  286.                    for ( i = 0; i < oButtons.length; i++) {
  287.                 if ( (    oButtons[i].tagName == "IMG" ) &&
  288.                      (    oButtons[i].className == "ToolbarButton" )) {
  289.  
  290.                             oButtons[i].tabIndex = -1;
  291.                 };
  292.             };
  293.         };
  294.  
  295.  
  296.         fnSortBy(-1, -1, //arButtonSortNames[gnSortBy], gnSortDirection, 
  297.                 false);
  298.     }
  299.     catch(err) { // Error occured. retry later.
  300.         ToolBarSetupTimer = window.setTimer(fnSetupToolBar, 50);
  301.     };
  302.  
  303. };
  304.  
  305. function fnFindParameter(someString, someNumber) {
  306.  
  307.     var oRes = new Array();
  308.     var bInQuotes = false;
  309.     var nElement = 0;
  310.     oRes[0] = new String();
  311.     
  312.     for (var i = 0; i < someString.length; i++) {
  313.         if (bInQuotes) {
  314.             if (someString.charAt(i) == '"') {
  315.                 bInQuotes = false;
  316.             }
  317.             else {
  318.                 oRes[nElement] += someString.charAt(i);
  319.             };
  320.         }
  321.         else {
  322.             if (someString.charAt(i) == '"') {
  323.                 bInQuotes = true;
  324.                 
  325.                 if (oRes[nElement] == null) {
  326.                     oRes[nElement] = new String();
  327.                 }
  328.                 else 
  329.                 if (oRes[nElement] != "") {
  330.                     nElement ++;
  331.                     oRes[nElement] = new String();
  332.                 };
  333.             }
  334.             else if (someString.charAt(i) == ' ') {
  335.                 if (oRes[nElement] == null) {
  336.                     oRes[nElement] = new String();
  337.                 }
  338.                 else 
  339.                 if (oRes[nElement] != "") {
  340.                     nElement ++;
  341.                     oRes[nElement] = new String();
  342.                 };
  343.             }
  344.             else {
  345.                 if (oRes[nElement] == null) {
  346.                     oRes[nElement] = new String();
  347.                 };
  348.                 oRes[nElement] += someString.charAt(i);
  349.             }
  350.         };
  351.     };
  352.  
  353.     if (someNumber > 0 && someNumber < oRes.length) {
  354.         return oRes[someNumber];
  355.     }
  356.     else {
  357.         return null;
  358.     };
  359. };
  360.  
  361. function fnDoStartup() {
  362.     var Helper = fnGetHelperObject();
  363.     try {
  364.         Helper.DoRevokeDragDrop();
  365.     }
  366.     catch(err) {
  367.         // Turn off waiting SetUps 
  368.         
  369.         if (ToolBarSetupTimer != -1) {
  370.             window.clearTimeout(ToolBarSetupTimer);
  371.             ToolBarSetupTimer = -1;
  372.         };
  373.         if (TitleBarSetupTimer != -1) {
  374.             window.clearTimeout(TitleBarSetupTimer);
  375.             TitleBarSetupTimer = -1;
  376.         };
  377.         
  378.         // Turn off onload handlers
  379.         for (var i = 0; i < document.frames.length; i++) {
  380.             var curFrame = document.frames.item(i);
  381.             if (curFrame.document.body.onload != null &&
  382.                 curFrame.document.body.onload != "") {
  383.                 
  384.                 curFrame.document.body.onload = "";
  385.             };
  386.         };
  387.  
  388.         bWontWork = true;
  389.         alert(L_NO_HELPER);
  390.         window.close();
  391.         return;
  392.     };
  393.  
  394.  
  395.     // Setup Splitter width
  396.     fnRestoreSplitterPosition();
  397.     //
  398.  
  399.     fnSetupTitleBar();
  400.  
  401.     Helper.DoBroadcastCloseSplash();
  402.     Helper.RestoreWindowPos( ccsModule, ccsWindowPos, oHTA.applicationName);
  403.         
  404.         
  405.     fnResizeTitleBar();
  406.  
  407.     fnLoadSettings();
  408.  
  409.     fnSetupToolBar();
  410.  
  411.     var sCommandLinePath = fnFindParameter(oHTA.commandLine, 1);
  412.  
  413.     var sLastFile = "";
  414.     if (sCommandLinePath == "" || sCommandLinePath == null) {
  415.         sLastFile = fnGetSetting(ccsStLastFile, "", false);
  416.     }
  417.     else {
  418.         sLastFile = sCommandLinePath;
  419.     };
  420.     
  421.     if (sLastFile == "")
  422.         sLastFile = null;
  423.  
  424.     
  425.     fnLoadFile(sLastFile, (sCommandLinePath == sLastFile && sLastFile != null) );
  426.  
  427. };
  428. var nLastClientWidth = 0;
  429. function fnResizeTitleBar() {
  430.     if (bWontWork)
  431.         return;
  432.         
  433.     if (nLastClientWidth != ctTitleBar.document.body.clientWidth) {
  434.  
  435.  
  436.         idMainFrameSet.rows =
  437.         //(ctTitleBar.document.body.clientWidth * 50.0 / 1024.0) +
  438.         "38" + 
  439.         "," +
  440.                 (ctToolBars.document.body.scrollHeight).toString() +
  441.                 ",*";
  442.  
  443.     };
  444.  
  445.     
  446. };
  447.  
  448.  
  449.  
  450. function fnCalcLeftFrameWidth() {
  451.     var nScreenWidth = (ctRightFrame.document.parentWindow.screenLeft - 
  452.         ctLeftFrame.document.parentWindow.screenLeft);
  453.     if (nScreenWidth < 8) {
  454.         nScreenWidth = 0;
  455.     };
  456.     nScreenWidth = Math.min(ctLeftFrame.document.body.clientWidth, 
  457.                 nScreenWidth);
  458.     return nScreenWidth;
  459. };
  460.  
  461. function fnIsFolderTreeVisible() {
  462.  
  463.     return (fnCalcLeftFrameWidth() > 0);
  464.  
  465. };
  466.  
  467. function fnSynchronizeShowHideFoldersTreeButton() {
  468.     var tbButton = fnGetLeftToolbar().all.ctsFoldersTreeShowHide;
  469.  
  470.     var bFoldersTreeVisible = //( parseInt(idVerticalFrameSet.cols.slice(0,1)) != 0);
  471.         //(ctLeftFrame.document.body.clientWidth > 0);
  472.         //ctRightFrame.document.parentWindow.screenLeft - 
  473.         //ctLeftFrame.document.parentWindow.screenLeft
  474.         fnIsFolderTreeVisible();
  475.  
  476.  
  477.     if (bFoldersTreeVisible) {
  478.         tbButton.alt = L_FoldersTreeButton_Hide;
  479.         tbButton.src        = "FolderTreeHide_g.gif";
  480.         tbButton.activesrc    = "FolderTreeHide.gif";
  481.         tbButton.graysrc    = "FolderTreeHide_g.gif";
  482.     }
  483.     else {
  484.         tbButton.alt = L_FoldersTreeButton_Show;
  485.         tbButton.src        = "FolderTreeShow_g.gif";
  486.         tbButton.activesrc    = "FolderTreeShow.gif";
  487.         tbButton.graysrc    = "FolderTreeShow_g.gif";
  488.     };
  489. };
  490.  
  491. function fnToggleShowHideFoldersTree() {
  492. //    var tbButton = fnGetLeftToolbar().all.ctsFoldersTreeShowHide;
  493.  
  494.     var bFoldersTreeVisible = //( parseInt(idVerticalFrameSet.cols.slice(0,1)) != 0);
  495.             //(ctLeftFrame.document.body.clientWidth > 0);
  496.         fnIsFolderTreeVisible();
  497.  
  498.     if (bFoldersTreeVisible)
  499.         fnOnSplitterMove(); // Save current percents
  500.  
  501.     bFoldersTreeVisible = !bFoldersTreeVisible;
  502.  
  503.     if (bFoldersTreeVisible) {
  504.  
  505.         fnSetSetting(ccsLeftPaneHidden,
  506.             0,
  507.                     true);
  508.  
  509.     }
  510.     else {
  511.         fnSetSetting(ccsLeftPaneHidden,
  512.             1,
  513.                     true);
  514.  
  515.     };
  516.  
  517.         fnRestoreSplitterPosition();
  518.  
  519. };
  520.  
  521.  
  522.  
  523. function fnRestoreSplitterPosition() {
  524.     if (bWontWork)
  525.         return;
  526.         
  527.  
  528.         // Setup Splitter width
  529.         var bLeftPaneHidden  = fnGetSetting(ccsLeftPaneHidden, 0, true); 
  530.  
  531.         if ( ! bLeftPaneHidden ) {
  532.  
  533.         var nLeftPanePercent = fnGetSetting(ccsLeftPanePercent, 0, true);
  534.         if (nLeftPanePercent == null ||
  535.             isNaN(nLeftPanePercent) ||
  536.             nLeftPanePercent <= 0 ||
  537.             nLeftPanePercent >= 9800) {
  538.  
  539.  
  540.             nLeftPanePercent = 20;
  541.         }
  542.         else
  543.             nLeftPanePercent /= 100.0;
  544.  
  545.         if (fnGetBrowserVersion() >= 5.5) {
  546.             nLeftPanePercent += 0.2;
  547.         }
  548.         else {
  549.             nLeftPanePercent -= 0.2;
  550.         };
  551.  
  552.         idVerticalFrameSet.cols = nLeftPanePercent.toString() + "%,*";
  553.     }
  554.     else {
  555.         idVerticalFrameSet.cols = "0%,*";
  556.     };
  557.     //
  558.  
  559.         fnSynchronizeShowHideFoldersTreeButton();
  560. };
  561.  
  562. function fnOnSplitterMove() {
  563.  
  564. //ctTitleBar.document.all.idVersionString.innerText = 
  565. //    ctLeftFrame.document.body.clientWidth + ":" + ctRightFrame.document.body.clientWidth;
  566. //ctLeftFrame.offsetWidth + ":" + ctRightFrame.offsetWidth;
  567. //ctLeftFrame.width + ":" + ctRightFrame.width;
  568. //ctLeftFrame.document.parentWindow.screenLeft + ":" +ctRightFrame.document.parentWindow.screenLeft + "::" + 
  569. //ctLeftFrame.document.body.clientWidth + ":" + ctRightFrame.document.body.clientWidth;
  570.  
  571.     if ( (ctLeftFrame.document.body.clientWidth +
  572.                 ctRightFrame.document.body.clientWidth) > 10 ) {
  573.         
  574.         var nLeftFrameWidth = fnCalcLeftFrameWidth();
  575.         if (nLeftFrameWidth > 0)
  576.             nLeftFrameWidth -= 0;
  577.         var nLeftPanePercent = Math.round(
  578.                 (/*ctLeftFrame.document.body.clientWidth*/
  579.                 nLeftFrameWidth * 10000.0) / 
  580.                 (/*ctLeftFrame.document.body.clientWidth*/
  581.                 nLeftFrameWidth +
  582.                     ctRightFrame.document.body.clientWidth + 4)
  583.             );
  584.  
  585.         if (nLeftPanePercent > 0) {
  586.                 fnSetSetting(ccsLeftPanePercent,
  587.                 nLeftPanePercent,
  588.                         true);
  589.         };
  590.  
  591.         fnSetSetting(ccsLeftPaneHidden,
  592.             //!(nLeftPanePercent > 0) ,
  593.             !fnIsFolderTreeVisible(),
  594.                     true);
  595.     };
  596.  
  597.         fnSynchronizeShowHideFoldersTreeButton();
  598. };
  599.  
  600. function fnDoShutdown() {
  601.  
  602.     if (bWontWork)
  603.         return;
  604.  
  605.     var bLocked = false;
  606.  
  607.     try {    // Save Currently selected folder w/o notifications/stamp change...
  608.         // Ignore errors, as this is not critical.
  609.  
  610.         if (gsCurrentPath == "" || gsCurrentPath == null || goCurrentFolderUIN == -1) {
  611.             throw "ERR0";
  612.         };
  613.  
  614.         fnGetHelperObject().LockFile(gsCurrentPath);
  615.         bLocked = true;
  616.  
  617.         var oDiskBase = fnCreateXMLctl();
  618.         if (oDiskBase == null) {
  619.             throw "ERR1";
  620.         };
  621.  
  622.         if (oDiskBase.load(gsCurrentPath)){
  623.             if (oDiskBase.selectSingleNode("//*[@UIN='" + goCurrentFolderUIN + "']") ) {
  624.                 
  625.                 var ctDATABASE = oDiskBase.selectSingleNode("/root/CogTracker:ctDATABASE");
  626.                 if (ctDATABASE != null)  {
  627.                     if (ctDATABASE.getAttribute(cxbiAttCurrentNode) != goCurrentFolderUIN) {
  628.  
  629.                         ctDATABASE.setAttribute(cxbiAttCurrentNode, goCurrentFolderUIN);
  630.  
  631.                                             oDiskBase.save(gsCurrentPath);
  632.                     };
  633.                     };
  634.             };
  635.  
  636.         };
  637.     }
  638.     catch(err) {
  639.     };
  640.     try {
  641.         if (bLocked) {
  642.             fnGetHelperObject().UnlockFile(gsCurrentPath);
  643.         };
  644.     }
  645.     catch(err) {
  646.     };
  647.         
  648.     try { // Helper can be absent, catch all...    
  649.         var Helper = fnGetHelperObject();
  650.         Helper.SaveWindowPos( ccsModule, ccsWindowPos, oHTA.applicationName);
  651.  
  652.         fnSaveSettings(); 
  653.     }
  654.     catch(err) {
  655.     };
  656.  
  657. };
  658. </SCRIPT>
  659.  
  660. <SCRIPT FOR=document EVENT="onhelp">
  661. top.fnShowHelp();
  662. window.event.cancelBubble = true;
  663. window.event.returnValue = false;
  664. </SCRIPT>
  665.  
  666. </HEAD>
  667.  
  668. <FRAMESET ROWS="38,24,*" FRAMEBORDER="yes" BORDER="1" id="idMainFrameSet"
  669.     MARGINWIDTH="0" MARGINHEIGHT="0" FRAMESPACING="0"
  670.     onload="fnDoStartup();"
  671.     onbeforeunload="fnDoShutdown()"
  672.     xxonbeforeprint="alert('before'); event.returnValue = false; return false;"
  673.  oncontextmenu="event.cancelBubble=true; event.returnValue=false; return false;"
  674. >
  675.  
  676.  
  677.     <FRAME APPLICATION="yes" SRC="ctTitleBar.htm" id="ctTitleBar"
  678.             SCROLLING="NO" Class="NotPrintable"
  679.             NORESIZE="1"
  680.             FRAMEBORDER="no" MARGINWIDTH="0" MARGINHEIGHT="0"
  681.             onresize="fnResizeTitleBar()"
  682.             TABINDEX="-1"/>
  683.  
  684.     <FRAME APPLICATION="yes" SRC="ctToolBars.htm" id="ctToolBars"
  685.             SCROLLING="NO" Class="NotPrintable"
  686.             NORESIZE="1"
  687.             FRAMEBORDER="no" MARGINWIDTH="0" MARGINHEIGHT="0"
  688.             TABINDEX="-1"/>
  689.  
  690.     <FRAMESET COLS="20%,*" FRAMEBORDER="yes" BORDER="5" FRAMESPACING="2"
  691.         id="idVerticalFrameSet"
  692.  oncontextmenu="event.cancelBubble=true; event.returnValue=false; return false;"
  693.         >
  694.  
  695.         <FRAME APPLICATION="yes" SRC="ctLeftFrame.htm"
  696.                 id="ctLeftFrame" SCROLLING="YES"
  697.                 onresize="fnOnSplitterMove()" 
  698.                 FRAMEBORDER="yes" TABINDEX="-1"/>
  699.  
  700.         <FRAME APPLICATION="yes" SRC="ctRightFrame.htm"
  701.                 id="ctRightFrame" SCROLLING="YES"
  702.                 FRAMEBORDER="yes" TABINDEX="-1"/>
  703.     </FRAMESET>
  704. </FRAMESET>
  705. </HTML>
  706.